package com.example.demo03.service;

import com.example.demo03.dao.UserMapper;
import com.example.demo03.pojo.User;
import com.example.demo03.util.SqlSessionUtil;
import org.apache.ibatis.session.SqlSession;

public class UserServiceImpl {
    // 1. 定义登录方法接收web层传递的user对象，并返回给web层用户对象
    public User login(User user) {
        // 2. 在登录方法体中根据mybatis工具类获取mybatis会话对象
        SqlSession sqlSession = SqlSessionUtil.createSqlSession();
        // 3. 使用会话对象调用方法获取dao层的接口代理对象
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        // 4. 使用接口代理对象调用接口中的登录方法，user作为参数传递
        User u = mapper.login(user);
        // 5. 释放资源
        sqlSession.close();
        // 6. 直接返回User对象
        return u;
    }

    // 注册方法
    public Boolean register(User u) {
        // 返回
        Boolean flag = true;

        SqlSession sqlSession = SqlSessionUtil.createSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        User user = mapper.queryByUsername(u.getUsername());

        if (user == null) {
            // 注册
            flag = mapper.regist(u);
            // 提交
            sqlSession.commit();
        } else {
            flag = false;
        }

        // 释放资源
        sqlSession.close();
        // 返回flag
        return flag;
    }
}
